package cn.batch.daemon;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import cn.batch.daemon.loadBatch.RiskWarnMonthLoadProcReport;
import cn.batch.daemon.util.ConstantParameter;
import cn.batch.daemon.util.DateUtil;

/**
 * 风险预警装载征信数据-按月进程入口程序
 * 
 * @author xihn
 * 
 */
public class LoadMonthDataMain {

	public static void main(String[] args) throws Exception {
		int argsLength = args.length;
		if (argsLength < 1) {
			throw new IllegalArgumentException("请传入需要加载的数据日期字符串。格式: yyyyMMdd");
		}
		
		String s = args[0];
		Date bDate = null;
		try {
			bDate = DateUtil.fromString(s, "yyyyMMdd");
		} catch (ParseException e) {
			throw new IllegalArgumentException("参数格式无效。格式：yyyyMMdd");
		}
		
		Configuration config = new Configuration();
		int runDay = config.getSetting(ConstantParameter.RISKWARN_RUN_DAY, 0);
		if (argsLength == 1) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(bDate);
			if (calendar.get(Calendar.DAY_OF_MONTH) != runDay - 1) {
				System.out.println("非指定运行日期。");
				System.exit(0);
			}
		}
		
		RiskWarnMonthLoadProcReport loader = new RiskWarnMonthLoadProcReport(config);
		/**
		 * 说明：
		 * 1.2013-7-20风险预警第二步在取前置为eds名称的压缩包时没有取到，
		 * 检查是发现eds的压缩包放在20130720的文件夹下面，而由于本系统所
		 * 有跑批都是t-1所以取的是20130719文件夹所以没有取到前置给我们的
		 * eds的压缩包，现在将传入的日期进行t+1处理（紧紧是风险预警装载征信数据）
		 * 修改人：黄磊
		 * 日期：2013-7-22
		 */
		DateFormat df = new SimpleDateFormat("yyyyMMdd");
		Calendar beginCalendar = Calendar.getInstance();
		beginCalendar.setTime(df.parse(s));
		beginCalendar.add(Calendar.DAY_OF_MONTH, 1);
		loader.setBatchDate(df.format(beginCalendar.getTime()));
		loader.run();
		System.exit(0);
	}
}
